﻿using System;
using System.Runtime.InteropServices;
using System.Text;

namespace Valve.VR
{
	// Token: 0x02000790 RID: 1936
	public class CVRCompositor
	{
		// Token: 0x06002E66 RID: 11878 RVA: 0x000F271C File Offset: 0x000F091C
		internal CVRCompositor(IntPtr pInterface)
		{
			this.FnTable = (IVRCompositor)Marshal.PtrToStructure(pInterface, typeof(IVRCompositor));
		}

		// Token: 0x06002E67 RID: 11879 RVA: 0x000F2740 File Offset: 0x000F0940
		public void SetTrackingSpace(ETrackingUniverseOrigin eOrigin)
		{
			this.FnTable.SetTrackingSpace(eOrigin);
		}

		// Token: 0x06002E68 RID: 11880 RVA: 0x000F2754 File Offset: 0x000F0954
		public ETrackingUniverseOrigin GetTrackingSpace()
		{
			return this.FnTable.GetTrackingSpace();
		}

		// Token: 0x06002E69 RID: 11881 RVA: 0x000F2774 File Offset: 0x000F0974
		public EVRCompositorError WaitGetPoses(TrackedDevicePose_t[] pRenderPoseArray, TrackedDevicePose_t[] pGamePoseArray)
		{
			return this.FnTable.WaitGetPoses(pRenderPoseArray, (uint)pRenderPoseArray.Length, pGamePoseArray, (uint)pGamePoseArray.Length);
		}

		// Token: 0x06002E6A RID: 11882 RVA: 0x000F279C File Offset: 0x000F099C
		public EVRCompositorError GetLastPoses(TrackedDevicePose_t[] pRenderPoseArray, TrackedDevicePose_t[] pGamePoseArray)
		{
			return this.FnTable.GetLastPoses(pRenderPoseArray, (uint)pRenderPoseArray.Length, pGamePoseArray, (uint)pGamePoseArray.Length);
		}

		// Token: 0x06002E6B RID: 11883 RVA: 0x000F27C4 File Offset: 0x000F09C4
		public EVRCompositorError GetLastPoseForTrackedDeviceIndex(uint unDeviceIndex, ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pOutputGamePose)
		{
			return this.FnTable.GetLastPoseForTrackedDeviceIndex(unDeviceIndex, ref pOutputPose, ref pOutputGamePose);
		}

		// Token: 0x06002E6C RID: 11884 RVA: 0x000F27E8 File Offset: 0x000F09E8
		public EVRCompositorError Submit(EVREye eEye, ref Texture_t pTexture, ref VRTextureBounds_t pBounds, EVRSubmitFlags nSubmitFlags)
		{
			return this.FnTable.Submit(eEye, ref pTexture, ref pBounds, nSubmitFlags);
		}

		// Token: 0x06002E6D RID: 11885 RVA: 0x000F280C File Offset: 0x000F0A0C
		public void ClearLastSubmittedFrame()
		{
			this.FnTable.ClearLastSubmittedFrame();
		}

		// Token: 0x06002E6E RID: 11886 RVA: 0x000F2820 File Offset: 0x000F0A20
		public void PostPresentHandoff()
		{
			this.FnTable.PostPresentHandoff();
		}

		// Token: 0x06002E6F RID: 11887 RVA: 0x000F2834 File Offset: 0x000F0A34
		public bool GetFrameTiming(ref Compositor_FrameTiming pTiming, uint unFramesAgo)
		{
			return this.FnTable.GetFrameTiming(ref pTiming, unFramesAgo);
		}

		// Token: 0x06002E70 RID: 11888 RVA: 0x000F2858 File Offset: 0x000F0A58
		public uint GetFrameTimings(ref Compositor_FrameTiming pTiming, uint nFrames)
		{
			return this.FnTable.GetFrameTimings(ref pTiming, nFrames);
		}

		// Token: 0x06002E71 RID: 11889 RVA: 0x000F287C File Offset: 0x000F0A7C
		public float GetFrameTimeRemaining()
		{
			return this.FnTable.GetFrameTimeRemaining();
		}

		// Token: 0x06002E72 RID: 11890 RVA: 0x000F289C File Offset: 0x000F0A9C
		public void GetCumulativeStats(ref Compositor_CumulativeStats pStats, uint nStatsSizeInBytes)
		{
			this.FnTable.GetCumulativeStats(ref pStats, nStatsSizeInBytes);
		}

		// Token: 0x06002E73 RID: 11891 RVA: 0x000F28B0 File Offset: 0x000F0AB0
		public void FadeToColor(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
		{
			this.FnTable.FadeToColor(fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
		}

		// Token: 0x06002E74 RID: 11892 RVA: 0x000F28CC File Offset: 0x000F0ACC
		public HmdColor_t GetCurrentFadeColor(bool bBackground)
		{
			return this.FnTable.GetCurrentFadeColor(bBackground);
		}

		// Token: 0x06002E75 RID: 11893 RVA: 0x000F28EC File Offset: 0x000F0AEC
		public void FadeGrid(float fSeconds, bool bFadeIn)
		{
			this.FnTable.FadeGrid(fSeconds, bFadeIn);
		}

		// Token: 0x06002E76 RID: 11894 RVA: 0x000F2900 File Offset: 0x000F0B00
		public float GetCurrentGridAlpha()
		{
			return this.FnTable.GetCurrentGridAlpha();
		}

		// Token: 0x06002E77 RID: 11895 RVA: 0x000F2920 File Offset: 0x000F0B20
		public EVRCompositorError SetSkyboxOverride(Texture_t[] pTextures)
		{
			return this.FnTable.SetSkyboxOverride(pTextures, (uint)pTextures.Length);
		}

		// Token: 0x06002E78 RID: 11896 RVA: 0x000F2944 File Offset: 0x000F0B44
		public void ClearSkyboxOverride()
		{
			this.FnTable.ClearSkyboxOverride();
		}

		// Token: 0x06002E79 RID: 11897 RVA: 0x000F2958 File Offset: 0x000F0B58
		public void CompositorBringToFront()
		{
			this.FnTable.CompositorBringToFront();
		}

		// Token: 0x06002E7A RID: 11898 RVA: 0x000F296C File Offset: 0x000F0B6C
		public void CompositorGoToBack()
		{
			this.FnTable.CompositorGoToBack();
		}

		// Token: 0x06002E7B RID: 11899 RVA: 0x000F2980 File Offset: 0x000F0B80
		public void CompositorQuit()
		{
			this.FnTable.CompositorQuit();
		}

		// Token: 0x06002E7C RID: 11900 RVA: 0x000F2994 File Offset: 0x000F0B94
		public bool IsFullscreen()
		{
			return this.FnTable.IsFullscreen();
		}

		// Token: 0x06002E7D RID: 11901 RVA: 0x000F29B4 File Offset: 0x000F0BB4
		public uint GetCurrentSceneFocusProcess()
		{
			return this.FnTable.GetCurrentSceneFocusProcess();
		}

		// Token: 0x06002E7E RID: 11902 RVA: 0x000F29D4 File Offset: 0x000F0BD4
		public uint GetLastFrameRenderer()
		{
			return this.FnTable.GetLastFrameRenderer();
		}

		// Token: 0x06002E7F RID: 11903 RVA: 0x000F29F4 File Offset: 0x000F0BF4
		public bool CanRenderScene()
		{
			return this.FnTable.CanRenderScene();
		}

		// Token: 0x06002E80 RID: 11904 RVA: 0x000F2A14 File Offset: 0x000F0C14
		public void ShowMirrorWindow()
		{
			this.FnTable.ShowMirrorWindow();
		}

		// Token: 0x06002E81 RID: 11905 RVA: 0x000F2A28 File Offset: 0x000F0C28
		public void HideMirrorWindow()
		{
			this.FnTable.HideMirrorWindow();
		}

		// Token: 0x06002E82 RID: 11906 RVA: 0x000F2A3C File Offset: 0x000F0C3C
		public bool IsMirrorWindowVisible()
		{
			return this.FnTable.IsMirrorWindowVisible();
		}

		// Token: 0x06002E83 RID: 11907 RVA: 0x000F2A5C File Offset: 0x000F0C5C
		public void CompositorDumpImages()
		{
			this.FnTable.CompositorDumpImages();
		}

		// Token: 0x06002E84 RID: 11908 RVA: 0x000F2A70 File Offset: 0x000F0C70
		public bool ShouldAppRenderWithLowResources()
		{
			return this.FnTable.ShouldAppRenderWithLowResources();
		}

		// Token: 0x06002E85 RID: 11909 RVA: 0x000F2A90 File Offset: 0x000F0C90
		public void ForceInterleavedReprojectionOn(bool bOverride)
		{
			this.FnTable.ForceInterleavedReprojectionOn(bOverride);
		}

		// Token: 0x06002E86 RID: 11910 RVA: 0x000F2AA4 File Offset: 0x000F0CA4
		public void ForceReconnectProcess()
		{
			this.FnTable.ForceReconnectProcess();
		}

		// Token: 0x06002E87 RID: 11911 RVA: 0x000F2AB8 File Offset: 0x000F0CB8
		public void SuspendRendering(bool bSuspend)
		{
			this.FnTable.SuspendRendering(bSuspend);
		}

		// Token: 0x06002E88 RID: 11912 RVA: 0x000F2ACC File Offset: 0x000F0CCC
		public EVRCompositorError GetMirrorTextureD3D11(EVREye eEye, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceView)
		{
			return this.FnTable.GetMirrorTextureD3D11(eEye, pD3D11DeviceOrResource, ref ppD3D11ShaderResourceView);
		}

		// Token: 0x06002E89 RID: 11913 RVA: 0x000F2AF0 File Offset: 0x000F0CF0
		public void ReleaseMirrorTextureD3D11(IntPtr pD3D11ShaderResourceView)
		{
			this.FnTable.ReleaseMirrorTextureD3D11(pD3D11ShaderResourceView);
		}

		// Token: 0x06002E8A RID: 11914 RVA: 0x000F2B04 File Offset: 0x000F0D04
		public EVRCompositorError GetMirrorTextureGL(EVREye eEye, ref uint pglTextureId, IntPtr pglSharedTextureHandle)
		{
			pglTextureId = 0U;
			return this.FnTable.GetMirrorTextureGL(eEye, ref pglTextureId, pglSharedTextureHandle);
		}

		// Token: 0x06002E8B RID: 11915 RVA: 0x000F2B2C File Offset: 0x000F0D2C
		public bool ReleaseSharedGLTexture(uint glTextureId, IntPtr glSharedTextureHandle)
		{
			return this.FnTable.ReleaseSharedGLTexture(glTextureId, glSharedTextureHandle);
		}

		// Token: 0x06002E8C RID: 11916 RVA: 0x000F2B50 File Offset: 0x000F0D50
		public void LockGLSharedTextureForAccess(IntPtr glSharedTextureHandle)
		{
			this.FnTable.LockGLSharedTextureForAccess(glSharedTextureHandle);
		}

		// Token: 0x06002E8D RID: 11917 RVA: 0x000F2B64 File Offset: 0x000F0D64
		public void UnlockGLSharedTextureForAccess(IntPtr glSharedTextureHandle)
		{
			this.FnTable.UnlockGLSharedTextureForAccess(glSharedTextureHandle);
		}

		// Token: 0x06002E8E RID: 11918 RVA: 0x000F2B78 File Offset: 0x000F0D78
		public uint GetVulkanInstanceExtensionsRequired(StringBuilder pchValue, uint unBufferSize)
		{
			return this.FnTable.GetVulkanInstanceExtensionsRequired(pchValue, unBufferSize);
		}

		// Token: 0x06002E8F RID: 11919 RVA: 0x000F2B9C File Offset: 0x000F0D9C
		public uint GetVulkanDeviceExtensionsRequired(IntPtr pPhysicalDevice, StringBuilder pchValue, uint unBufferSize)
		{
			return this.FnTable.GetVulkanDeviceExtensionsRequired(pPhysicalDevice, pchValue, unBufferSize);
		}

		// Token: 0x04002AE0 RID: 10976
		private IVRCompositor FnTable;
	}
}
